home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / pvm34b3.zip / pvm34b3 / pvm3 / src / global.c < prev    next >
C/C++ Source or Header  |  1997-08-05  |  16KB  |  389 lines

  1.  
  2. static char rcsid[] =
  3.     "$Id: global.c,v 1.9 1997/06/27 17:32:19 pvmsrc Exp $";
  4.  
  5. /*
  6.  *         PVM version 3.4:  Parallel Virtual Machine System
  7.  *               University of Tennessee, Knoxville TN.
  8.  *           Oak Ridge National Laboratory, Oak Ridge TN.
  9.  *                   Emory University, Atlanta GA.
  10.  *      Authors:  J. J. Dongarra, G. E. Fagg, M. Fischer
  11.  *          G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
  12.  *         P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
  13.  *                   (C) 1997 All Rights Reserved
  14.  *
  15.  *                              NOTICE
  16.  *
  17.  * Permission to use, copy, modify, and distribute this software and
  18.  * its documentation for any purpose and without fee is hereby granted
  19.  * provided that the above copyright notice appear in all copies and
  20.  * that both the copyright notice and this permission notice appear in
  21.  * supporting documentation.
  22.  *
  23.  * Neither the Institutions (Emory University, Oak Ridge National
  24.  * Laboratory, and University of Tennessee) nor the Authors make any
  25.  * representations about the suitability of this software for any
  26.  * purpose.  This software is provided ``as is'' without express or
  27.  * implied warranty.
  28.  *
  29.  * PVM version 3 was funded in part by the U.S. Department of Energy,
  30.  * the National Science Foundation and the State of Tennessee.
  31.  */
  32.  
  33. /*
  34.  *    global.c
  35.  *
  36.  *    General PVM Globals.
  37.  *
  38. $Log: global.c,v $
  39.  * Revision 1.9  1997/06/27  17:32:19  pvmsrc
  40.  * Updated for WIN32 header files & Authors.
  41.  *
  42.  * Revision 1.8  1997/06/26  19:38:48  pvmsrc
  43.  *         Add PvmParentNotSet
  44.  *
  45.  * Revision 1.7  1997/06/23  21:26:14  pvmsrc
  46.  * Added new PvmHostrNMstr error code.
  47.  *     - Hoster must run on master host.
  48.  *
  49.  * Revision 1.6  1997/05/01  20:17:38  pvmsrc
  50.  * Renamed TEV_MBOXINFO -> TEV_GETMBOXINFO.
  51.  *
  52.  * Revision 1.5  1997/04/10  20:13:45  pvmsrc
  53.  * Replaced trace event for getnames -> mboxinfo.
  54.  *
  55.  * Revision 1.4  1997/04/08  19:57:49  pvmsrc
  56.  * Promoted mbox static "classes" to public global "pvmmboxclasses".
  57.  *     - so pvmd can spank mboxes in ddpro.c...  :-Q
  58.  *     - renamed everywhere, moved decl / extern to global.[ch].
  59.  *
  60.  * Revision 1.3  1997/03/06  20:57:36  pvmsrc
  61.  *     Add host.h on its include list
  62.  *
  63.  * Revision 1.2  1997/01/28  19:26:16  pvmsrc
  64.  * New Copyright Notice & Authors.
  65.  *
  66.  * Revision 1.1  1996/10/24  19:43:02  pvmsrc
  67.  * Initial revision
  68.  *
  69.  *
  70.  */
  71.  
  72.  
  73. #include <stdio.h>
  74. #ifndef WIN32
  75. #include <rpc/types.h>
  76. #include <rpc/xdr.h>
  77. #else 
  78. #include "..\xdr\types.h"
  79. #include "..\xdr\xdr.h"
  80. #endif
  81. #include <pvm3.h>
  82. #include "lpvm.h"
  83. #include "pmsg.h"
  84. #include "host.h"
  85. #include "waitc.h"
  86. #include <pvmtev.h>
  87. #include "tevmac.h"
  88. #include "msgbox.h"
  89. #include "global.h"
  90.  
  91.  
  92. /***************
  93.  **  Globals  **
  94.  **           **
  95.  ***************/
  96.  
  97.  
  98. /* error messages for -pvm_errno */
  99.  
  100. char *pvm_errlist[] = {
  101.         "Error 0",
  102.         "Error 1",
  103.     "Bad parameter",
  104.     "Parameter mismatch",
  105.     "Value too large",
  106.     "End of buffer",
  107.     "No such host",
  108.     "No such file",
  109.     "Permission denied",
  110.         "Error 9",                /* not used */
  111.     "Malloc failed",
  112.         "Error 11",                /* not used */
  113.     "Can't decode message",
  114.         "Error 13",                /* not used */
  115.     "Can't contact local daemon",
  116.     "No current buffer",
  117.     "No such buffer",
  118.     "Null group name",
  119.     "Already in group",
  120.     "No such group",
  121.     "Not in group",
  122.     "No such instance",
  123.     "Host failed",
  124.     "No parent task",
  125.     "Not implemented",
  126.     "Pvmd system error",
  127.     "Version mismatch",
  128.     "Out of resources",
  129.     "Duplicate host",
  130.     "Can't start pvmd",
  131.     "Already in progress",
  132.     "No such task",
  133.     "Not Found",
  134.     "Already Exists",
  135.     "Hoster must run on master host",
  136.     "Spawning parent set PvmNoParent",
  137. };
  138.  
  139. int pvm_nerr =                            /* exported num of errors */
  140.     sizeof(pvm_errlist) / sizeof(pvm_errlist[0]);
  141.  
  142. int pvm_errno = 0;                        /* last err in PVM API funct */
  143.  
  144. struct waitc *waitlist = 0;                /* wait list */
  145.  
  146. struct pvmmclass *pvmmboxclasses = 0;    /* the mbox database */
  147.  
  148.  
  149.  
  150. /* Trace Data Identifier Structures */
  151.  
  152. struct Pvmtevdid pvmtevdidlist[] =
  153. {
  154.     /* TEV_DID_AN */    "AN",    "PVM Architecture Name",
  155.     /* TEV_DID_AC */    "AC",    "PVM Architecture Code",
  156.     /* TEV_DID_AS */    "AS",    "Argument Strings (Argc/Argv)",
  157.     /* TEV_DID_BF */    "BF",    "Block Flag",
  158.     /* TEV_DID_CC */    "CC",    "Condition Code",
  159.     /* TEV_DID_CN */    "CN",    "Class Name",
  160.     /* TEV_DID_CI */    "CI",    "Class Index",
  161.     /* TEV_DID_CF */    "CF",    "Class Flags",
  162.     /* TEV_DID_CD */    "CD",    "Class Data",
  163.     /* TEV_DID_CR */    "CR",    "Returned Class Data",
  164.     /* TEV_DID_CL */    "CL",    "Returned Class Names",
  165.     /* TEV_DID_CDA */    "CDA",    "Collective Data Address",
  166.     /* TEV_DID_CDT */    "CDT",    "Collective Data Type",
  167.     /* TEV_DID_CDX */    "CDX",    "Collective Data",
  168.     /* TEV_DID_CDC */    "CDC",    "Collective Count",
  169.     /* TEV_DID_CGI */    "CGI",    "Collective Group Result Instance",
  170.     /* TEV_DID_CRF */    "CRF",    "Collective Reduce Function",
  171.     /* TEV_DID_CXC */    "CXC",    "Current Message Context",
  172.     /* TEV_DID_CXF */    "CXF",    "Freed Message Context",
  173.     /* TEV_DID_CXN */    "CXN",    "New Message Context",
  174.     /* TEV_DID_CXS */    "CXS",    "Set Message Context",
  175.     /* TEV_DID_ERI */    "ERI",    "PVM Error Identifier",
  176.     /* TEV_DID_ERR */    "ERR",    "PVM Error String",
  177.     /* TEV_DID_FDS */    "FDS",    "File Descriptors",
  178.     /* TEV_DID_FP */    "FP",    "File Pointer",
  179.     /* TEV_DID_GN */    "GN",    "Group Name",
  180.     /* TEV_DID_GI */    "GI",    "Group Instance Number",
  181.     /* TEV_DID_GT */    "GT",    "Group Task ID",
  182.     /* TEV_DID_GS */    "GS",    "Group Size",
  183.     /* TEV_DID_GBC */    "GBC",    "Group Barrier Count",
  184.     /* TEV_DID_HN */    "HN",    "Host Name",
  185.     /* TEV_DID_HNL */    "HNL",    "Host Name List",
  186.     /* TEV_DID_HNA */    "HNA",    "Host Name Alias",
  187.     /* TEV_DID_HPT */    "HPT",    "Host PVMD Task ID",
  188.     /* TEV_DID_HA */    "HA",    "Host Architecture",
  189.     /* TEV_DID_HSP */    "HSP",    "Host Speed",
  190.     /* TEV_DID_HIS */    "HIS",    "Host Information Structures",
  191.     /* TEV_DID_HCS */    "HCS",    "Host Clock Seconds",
  192.     /* TEV_DID_HCU */    "HCU",    "Host Clock Microseconds",
  193.     /* TEV_DID_HDS */    "HDS",    "Host Delta Seconds",
  194.     /* TEV_DID_HDU */    "HDU",    "Host Delta Microseconds",
  195.     /* TEV_DID_HS */    "HS",    "Host Status",
  196.     /* TEV_DID_INB */    "INB",    "Info Number of Message Bytes",
  197.     /* TEV_DID_IMC */    "IMC",    "Info Message Code",
  198.     /* TEV_DID_IST */    "IST",    "Info Message Source Task",
  199.     /* TEV_DID_MC */    "MC",    "Message Code",
  200.     /* TEV_DID_MB */    "MB",    "Message Buffer",
  201.     /* TEV_DID_MNB */    "MNB",    "Message Number of Bytes",
  202.     /* TEV_DID_SRC */    "SRC",    "Message Source Task ID",
  203.     /* TEV_DID_DST */    "DST",    "Message Destination Task ID",
  204.     /* TEV_DID_MDL */    "MDL",    "Message Destination Task ID List",
  205.     /* TEV_DID_MTS */    "MTS",    "Message Timeout Seconds",
  206.     /* TEV_DID_MTU */    "MTU",    "Message Timeout Microseconds",
  207.     /* TEV_DID_MRF */    "MRF",    "Message Receive Function",
  208.     /* TEV_DID_MRB */    "MRB",    "Message Receive Buffer",
  209.     /* TEV_DID_MSB */    "MSB",    "Message Send Buffer",
  210.     /* TEV_DID_ME */    "ME",    "Message Encoding",
  211.     /* TEV_DID_AST */    "AST",    "Actual Message Sender Task ID",
  212.     /* TEV_DID_AMC */    "AMC",    "Actual Message Code",
  213.     /* TEV_DID_AML */    "AML",    "Actual Message Length",
  214.     /* TEV_DID_NE */    "NE",    "Notify Event ID",
  215.     /* TEV_DID_NMC */    "NMC",    "Notify Message Code",
  216.     /* TEV_DID_NCT */    "NCT",    "Notify Count",
  217.     /* TEV_DID_NTL */    "NTL",    "Notify Task ID List",
  218.     /* TEV_DID_NH */    "NH",    "Number of Hosts",
  219.     /* TEV_DID_NA */    "NA",    "Number of Architectures",
  220.     /* TEV_DID_OPT */    "OPT",    "PVM Option ID",
  221.     /* TEV_DID_OPV */    "OPV",    "PVM Option Value",
  222.     /* TEV_DID_OS */    "OS",    "Output String",
  223.     /* TEV_DID_PDA */    "PDA",    "Pack Data Address",
  224.     /* TEV_DID_PDT */    "PDT",    "Pack Data Type",
  225.     /* TEV_DID_PC */    "PC",    "Pack Count",
  226.     /* TEV_DID_PSD */    "PSD",    "Pack Stride",
  227.     /* TEV_DID_PSG */    "PSG",    "Pack String",
  228.     /* TEV_DID_PF */    "PF",    "Pack Format",
  229.     /* TEV_DID_PRF */    "PRF",    "Profiling Count",
  230.     /* TEV_DID_RST */    "RST",    "Receive Msg Source Task / Wildcard",
  231.     /* TEV_DID_RMC */    "RMC",    "Receive Msg Code / Wildcard",
  232.     /* TEV_DID_SN */    "SN",    "Signal Number",
  233.     /* TEV_DID_SE */    "SE",    "Spawn Executable File",
  234.     /* TEV_DID_SF */    "SF",    "Spawn Flags",
  235.     /* TEV_DID_SW */    "SW",    "Spawn Where",
  236.     /* TEV_DID_SC */    "SC",    "Spawn Count",
  237.     /* TEV_DID_STL */    "STL",    "Spawned Task ID List",
  238.     /* TEV_DID_SIB */    "SIB",    "Sibling Task ID List",
  239.     /* TEV_DID_TID */    "TID",    "Task ID",
  240.     /* TEV_DID_PT */    "PT",    "Parent Task ID",
  241.     /* TEV_DID_MT */    "MT",    "My Task ID",
  242.     /* TEV_DID_TF */    "TF",    "Task Flags",
  243.     /* TEV_DID_TN */    "TN",    "Task Name",
  244.     /* TEV_DID_PID */    "PID",    "Task Process ID",
  245.     /* TEV_DID_TT */    "TT",    "Target Task ID",
  246.     /* TEV_DID_TW */    "TW",    "Tasks Where",
  247.     /* TEV_DID_TIS */    "TIS",    "Task Information Structures",
  248.     /* TEV_DID_TNT */    "TNT",    "Task Info - Number of Tasks",
  249.     /* TEV_DID_TST */    "TST",    "Task Status",
  250.     /* TEV_DID_TUS */    "TUS",    "Task User Usage Seconds",
  251.     /* TEV_DID_TUU */    "TUU",    "Task User Usage Microseconds",
  252.     /* TEV_DID_TSS */    "TSS",    "Task System Usage Seconds",
  253.     /* TEV_DID_TSU */    "TSU",    "Task System Usage Microseconds",
  254.     /* TEV_DID_TES */    "TES",    "Task Exit Status",
  255.     /* TEV_DID_TA */    "TA",    "Tickle Arguments",
  256.     /* TEV_DID_TR */    "TR",    "Tickle Responses",
  257.     /* TEV_DID_TS */    "TS",    "Time Seconds",
  258.     /* TEV_DID_TU */    "TU",    "Time Microseconds",
  259.     /* TEV_DID_TGS */    "TGS",    "Timing Seconds",
  260.     /* TEV_DID_TGU */    "TGU",    "Timing Microseconds",
  261.     /* TEV_DID_TMW */    "TMW",    "Trace Mask Who",
  262.     /* TEV_DID_TM */    "TM",    "Trace Mask",
  263.     /* TEV_DID_TRC */    "TRC",    "Tracer Message Trace Context",
  264.     /* TEV_DID_TRT */    "TRT",    "Tracer Message Trace Tag",
  265.     /* TEV_DID_TRX */    "TRX",    "Tracer Message Output Context",
  266.     /* TEV_DID_TRO */    "TRO",    "Tracer Message Output Tag",
  267.     /* TEV_DID_TRM */    "TRM",    "Tracer Trace Mask",
  268.     /* TEV_DID_TRB */    "TRB",    "Tracer Trace Buffering",
  269.     /* TEV_DID_TRL */    "TRL",    "Tracer Trace Options",
  270.     /* TEV_DID_VER */    "VER",    "PVM Version",
  271.     /* TEV_DID_VCT */    "VCT",    "Trace Event Count",
  272.     /* TEV_DID_VID */    "VID",    "Trace Event ID",
  273.     /* TEV_DID_WID */    "WID",    "Wait Identifier Number"
  274. };
  275.  
  276.  
  277. /* Trace Event Info */
  278.  
  279. struct Pvmtevinfo pvmtevinfo[] =
  280. {
  281.     /* TEV_ADDHOSTS */        "addhosts",        0,    { 0, 0 }, { 0, 0 }, 0,
  282.     /* TEV_BARRIER */        "barrier",        0,    { 0, 0 }, { 0, 0 }, 0,
  283.     /* TEV_BCAST */            "bcast",        0,    { 0, 0 }, { 0, 0 }, 0,
  284.     /* TEV_BUFINFO */        "bufinfo",        0,    { 0, 0 }, { 0, 0 }, 0,
  285.     /* TEV_CONFIG */        "config",        0,    { 0, 0 }, { 0, 0 }, 0,
  286.     /* TEV_DELETE */        "delete",        0,    { 0, 0 }, { 0, 0 }, 0,
  287.     /* TEV_DELHOSTS */        "delhosts",        0,    { 0, 0 }, { 0, 0 }, 0,
  288.     /* TEV_EXIT */            "exit",            0,    { 0, 0 }, { 0, 0 }, 0,
  289.     /* TEV_FREEBUF */        "freebuf",        0,    { 0, 0 }, { 0, 0 }, 0,
  290.     /* TEV_GETFDS */        "getfds",        0,    { 0, 0 }, { 0, 0 }, 0,
  291.     /* TEV_GETINST */        "getinst",        0,    { 0, 0 }, { 0, 0 }, 0,
  292.     /* TEV_GETOPT */        "getopt",        0,    { 0, 0 }, { 0, 0 }, 0,
  293.     /* TEV_GETRBUF */        "getrbuf",        0,    { 0, 0 }, { 0, 0 }, 0,
  294.     /* TEV_GETSBUF */        "getsbuf",        0,    { 0, 0 }, { 0, 0 }, 0,
  295.     /* TEV_GETTID */        "gettid",        0,    { 0, 0 }, { 0, 0 }, 0,
  296.     /* TEV_GSIZE */            "gsize",        0,    { 0, 0 }, { 0, 0 }, 0,
  297.     /* TEV_HALT */            "halt",            0,    { 0, 0 }, { 0, 0 }, 0,
  298.     /* TEV_INITSEND */        "initsend",        0,    { 0, 0 }, { 0, 0 }, 0,
  299.     /* TEV_INSERT */        "insert",        0,    { 0, 0 }, { 0, 0 }, 0,
  300.     /* TEV_JOINGROUP */        "joingroup",    0,    { 0, 0 }, { 0, 0 }, 0,
  301.     /* TEV_KILL */            "kill",            0,    { 0, 0 }, { 0, 0 }, 0,
  302.     /* TEV_LOOKUP */        "lookup",        0,    { 0, 0 }, { 0, 0 }, 0,
  303.     /* TEV_LVGROUP */        "lvgroup",        0,    { 0, 0 }, { 0, 0 }, 0,
  304.     /* TEV_MCAST */            "mcast",        0,    { 0, 0 }, { 0, 0 }, 0,
  305.     /* TEV_MKBUF */            "mkbuf",        0,    { 0, 0 }, { 0, 0 }, 0,
  306.     /* TEV_MSTAT */            "mstat",        0,    { 0, 0 }, { 0, 0 }, 0,
  307.     /* TEV_MYTID */            "mytid",        0,    { 0, 0 }, { 0, 0 }, 0,
  308.     /* TEV_NOTIFY */        "notify",        0,    { 0, 0 }, { 0, 0 }, 0,
  309.     /* TEV_NRECV */            "nrecv",        0,    { 0, 0 }, { 0, 0 }, 0,
  310.     /* TEV_PARENT */        "parent",        0,    { 0, 0 }, { 0, 0 }, 0,
  311.     /* TEV_PERROR */        "perror",        0,    { 0, 0 }, { 0, 0 }, 0,
  312.     /* TEV_PKBYTE */        "pkbyte",        0,    { 0, 0 }, { 0, 0 }, 0,
  313.     /* TEV_PKCPLX */        "pkcplx",        0,    { 0, 0 }, { 0, 0 }, 0,
  314.     /* TEV_PKDCPLX */        "pkdcplx",        0,    { 0, 0 }, { 0, 0 }, 0,
  315.     /* TEV_PKDOUBLE */        "pkdouble",        0,    { 0, 0 }, { 0, 0 }, 0,
  316.     /* TEV_PKFLOAT */        "pkfloat",        0,    { 0, 0 }, { 0, 0 }, 0,
  317.     /* TEV_PKINT */            "pkint",        0,    { 0, 0 }, { 0, 0 }, 0,
  318.     /* TEV_PKUINT */        "pkuint",        0,    { 0, 0 }, { 0, 0 }, 0,
  319.     /* TEV_PKLONG */        "pklong",        0,    { 0, 0 }, { 0, 0 }, 0,
  320.     /* TEV_PKULONG */        "pkulong",        0,    { 0, 0 }, { 0, 0 }, 0,
  321.     /* TEV_PKSHORT */        "pkshort",        0,    { 0, 0 }, { 0, 0 }, 0,
  322.     /* TEV_PKUSHORT */        "pkushort",        0,    { 0, 0 }, { 0, 0 }, 0,
  323.     /* TEV_PKSTR */            "pkstr",        0,    { 0, 0 }, { 0, 0 }, 0,
  324.     /* TEV_PROBE */            "probe",        0,    { 0, 0 }, { 0, 0 }, 0,
  325.     /* TEV_PSTAT */            "pstat",        0,    { 0, 0 }, { 0, 0 }, 0,
  326.     /* TEV_RECV */            "recv",            0,    { 0, 0 }, { 0, 0 }, 0,
  327.     /* TEV_RECVF */            "recvf",        0,    { 0, 0 }, { 0, 0 }, 0,
  328.     /* TEV_SEND */            "send",            0,    { 0, 0 }, { 0, 0 }, 0,
  329.     /* TEV_SENDSIG */        "sendsig",        0,    { 0, 0 }, { 0, 0 }, 0,
  330.     /* TEV_SETOPT */        "setopt",        0,    { 0, 0 }, { 0, 0 }, 0,
  331.     /* TEV_SETRBUF */        "setrbuf",        0,    { 0, 0 }, { 0, 0 }, 0,
  332.     /* TEV_SETSBUF */        "setsbuf",        0,    { 0, 0 }, { 0, 0 }, 0,
  333.     /* TEV_SPAWN */            "spawn",        0,    { 0, 0 }, { 0, 0 }, 0,
  334.     /* TEV_START_PVMD */    "start_pvmd",    0,    { 0, 0 }, { 0, 0 }, 0,
  335.     /* TEV_TASKS */            "tasks",        0,    { 0, 0 }, { 0, 0 }, 0,
  336.     /* TEV_TICKLE */        "tickle",        0,    { 0, 0 }, { 0, 0 }, 0,
  337.     /* TEV_TIDTOHOST */        "tidtohost",    0,    { 0, 0 }, { 0, 0 }, 0,
  338.     /* TEV_TRECV */            "trecv",        0,    { 0, 0 }, { 0, 0 }, 0,
  339.     /* TEV_UPKBYTE */        "upkbyte",        0,    { 0, 0 }, { 0, 0 }, 0,
  340.     /* TEV_UPKCPLX */        "upkcplx",        0,    { 0, 0 }, { 0, 0 }, 0,
  341.     /* TEV_UPKDCPLX */        "upkdcplx",        0,    { 0, 0 }, { 0, 0 }, 0,
  342.     /* TEV_UPKDOUBLE */        "upkdouble",    0,    { 0, 0 }, { 0, 0 }, 0,
  343.     /* TEV_UPKFLOAT */        "upkfloat",        0,    { 0, 0 }, { 0, 0 }, 0,
  344.     /* TEV_UPKINT */        "upkint",        0,    { 0, 0 }, { 0, 0 }, 0,
  345.     /* TEV_UPKUINT */        "upkuint",        0,    { 0, 0 }, { 0, 0 }, 0,
  346.     /* TEV_UPKLONG */        "upklong",        0,    { 0, 0 }, { 0, 0 }, 0,
  347.     /* TEV_UPKULONG */        "upkulong",        0,    { 0, 0 }, { 0, 0 }, 0,
  348.     /* TEV_UPKSHORT */        "upkshort",        0,    { 0, 0 }, { 0, 0 }, 0,
  349.     /* TEV_UPKUSHORT */        "upkushort",    0,    { 0, 0 }, { 0, 0 }, 0,
  350.     /* TEV_UPKSTR */        "upkstr",        0,    { 0, 0 }, { 0, 0 }, 0,
  351.     /* TEV_VERSION */        "version",        0,    { 0, 0 }, { 0, 0 }, 0,
  352.     /* TEV_REG_HOSTER */    "reg_hoster",    0,    { 0, 0 }, { 0, 0 }, 0,
  353.     /* TEV_REG_RM */        "reg_rm",        0,    { 0, 0 }, { 0, 0 }, 0,
  354.     /* TEV_REG_TASKER */    "reg_tasker",    0,    { 0, 0 }, { 0, 0 }, 0,
  355.     /* TEV_REG_TRACER */    "reg_tracer",    0,    { 0, 0 }, { 0, 0 }, 0,
  356.     /* TEV_NEWTASK */        "newtask",        0,    { 0, 0 }, { 0, 0 }, 0,
  357.     /* TEV_ENDTASK */        "endtask",        0,    { 0, 0 }, { 0, 0 }, 0,
  358.     /* TEV_SPNTASK */        "spntask",        0,    { 0, 0 }, { 0, 0 }, 0,
  359.     /* TEV_ARCHCODE */        "archcode",        0,    { 0, 0 }, { 0, 0 }, 0,
  360.     /* TEV_CATCHOUT */        "catchout",        0,    { 0, 0 }, { 0, 0 }, 0,
  361.     /* TEV_GETMWID */        "getmwid",        0,    { 0, 0 }, { 0, 0 }, 0,
  362.     /* TEV_GETTMASK */        "gettmask",        0,    { 0, 0 }, { 0, 0 }, 0,
  363.     /* TEV_HOSTSYNC */        "hostsync",        0,    { 0, 0 }, { 0, 0 }, 0,
  364.     /* TEV_PACKF */            "packf",        0,    { 0, 0 }, { 0, 0 }, 0,
  365.     /* TEV_PRECV */            "precv",        0,    { 0, 0 }, { 0, 0 }, 0,
  366.     /* TEV_PSEND */            "psend",        0,    { 0, 0 }, { 0, 0 }, 0,
  367.     /* TEV_REDUCE */        "reduce",        0,    { 0, 0 }, { 0, 0 }, 0,
  368.     /* TEV_SETMWID */        "setmwid",        0,    { 0, 0 }, { 0, 0 }, 0,
  369.     /* TEV_SETTMASK */        "settmask",        0,    { 0, 0 }, { 0, 0 }, 0,
  370.     /* TEV_UNPACKF */        "unpackf",        0,    { 0, 0 }, { 0, 0 }, 0,
  371.     /* TEV_GATHER */        "gather",        0,    { 0, 0 }, { 0, 0 }, 0,
  372.     /* TEV_SCATTER */        "scatter",        0,    { 0, 0 }, { 0, 0 }, 0,
  373.     /* TEV_PUTINFO */        "putinfo",        0,    { 0, 0 }, { 0, 0 }, 0,
  374.     /* TEV_GETINFO */        "getinfo",        0,    { 0, 0 }, { 0, 0 }, 0,
  375.     /* TEV_REMOVE */        "remove",        0,    { 0, 0 }, { 0, 0 }, 0,
  376.     /* TEV_GETMBOXINFO */    "getmboxinfo",    0,    { 0, 0 }, { 0, 0 }, 0,
  377.     /* TEV_NEWCONTEXT */    "newcontext",    0,    { 0, 0 }, { 0, 0 }, 0,
  378.     /* TEV_FREECONTEXT */    "freecontext",    0,    { 0, 0 }, { 0, 0 }, 0,
  379.     /* TEV_SETCONTEXT */    "setcontext",    0,    { 0, 0 }, { 0, 0 }, 0,
  380.     /* TEV_GETCONTEXT */    "getcontext",    0,    { 0, 0 }, { 0, 0 }, 0,
  381.     /* TEV_SIBLINGS */        "siblings",        0,    { 0, 0 }, { 0, 0 }, 0,
  382.     /* TEV_GETMINFO */        "getminfo",        0,    { 0, 0 }, { 0, 0 }, 0,
  383.     /* TEV_SETMINFO */        "setminfo",        0,    { 0, 0 }, { 0, 0 }, 0,
  384.     /* TEV_TIMING */        "timing",        0,    { 0, 0 }, { 0, 0 }, 0,
  385.     /* TEV_PROFILING */        "profiling",    0,    { 0, 0 }, { 0, 0 }, 0,
  386.     /* TEV_USER_DEFINED */    "user_defined",    0,    { 0, 0 }, { 0, 0 }, 0
  387. };
  388.  
  389.